package cn.yitun.chat.yitunserverimbase.dao.userchat;

import cn.yitun.chat.yitunservercommonlib.crud.yitun.CrudDao;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.userchat.LastChatDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.userchat.LastChatInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.userchat.LastChatVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户最后聊天信息表
 * @author chenyitun
 * @email chenyitun@163.com
 * @date 2020-05-27 14:45:10
 */
@Mapper
public interface LastChatDao extends CrudDao<LastChatDto, LastChatInfo, LastChatVo> {

	int absDel(Long id);

	int batchAbsDel(Long[] ids);

	/**
	 * 删除最近聊天记录
	 * @param userId
	 * @param chatId
	 * @param type
	 * @return
	 */
	int deleteBy(@Param("userId") Long userId,
				 @Param("chatId") Long chatId,
				 @Param("type") String type);

	/**
	 * 获取用户最近聊天对象记录
	 * @param userId
	 * @param chatId
	 * @param type
	 * @return
	 */
	LastChatVo getUserLastChat(@Param("userId") Long userId,
							   @Param("chatId") Long chatId,
							   @Param("type") String type);

	/**
	 * 获取用户最后聊天记录
	 * @param userId
	 * @return
	 */
	List<LastChatVo> getUserLastChatList(@Param("userId") Long userId,
										 @Param("type") String type);

	/**
	 * 通过用户id，聊天id，聊天类型
	 * 获取最后聊天记录
	 * @param userId
	 * @param chatId
	 * @param type
	 * @return
	 */
    LastChatVo getLastChat(@Param("userId") Long userId,
						   @Param("chatId") Long chatId,
						   @Param("type") String type);
}
